package gui;

import javax.swing.JLabel;
import javax.swing.JProgressBar;
import javax.swing.JTextArea;
import javax.swing.SwingUtilities;

public class GuiLogger {

	private JTextArea kontrolkaTekstowa;
	private JLabel kontrolkaEtykiety;
	public JProgressBar kontrolkaPostepu;

	public void ustawKontrolkeTekstowa(JTextArea kontrolka) {
		kontrolkaTekstowa = kontrolka;
	}

	public void ustawKontrolkeEtykiety(JLabel kontrolka) {
		this.kontrolkaEtykiety = kontrolka;
		kontrolkaEtykiety.setText("");
	}

	public void ustawKontrolkePostepu(JProgressBar kontrolka) {
		kontrolkaPostepu = kontrolka;
		kontrolkaPostepu.setMinimum(0);
		kontrolkaPostepu.setIndeterminate(false);
	}

	public void ustawMaksymalnaWartoscPostepu(int max) {
		if (this.kontrolkaPostepu.getMaximum() != max)
			kontrolkaPostepu.setMaximum(max);
	}

	public void reset() {

		if (kontrolkaEtykiety != null) {
			kontrolkaEtykiety.setText("");
			kontrolkaEtykiety.repaint();
		}
		if (kontrolkaTekstowa != null) {
			kontrolkaTekstowa.setText("");
			kontrolkaTekstowa.setCaretPosition(kontrolkaTekstowa.getDocument()
					.getLength());
			kontrolkaTekstowa.repaint();
		}
		if (kontrolkaPostepu != null) {
			kontrolkaPostepu.setValue(0);
			kontrolkaPostepu.setString("0%");
			kontrolkaPostepu.repaint();
		}
	}

	public void wypisz(final String teskt) {
		// SwingUtilities.invokeLater(new Runnable() {
		// public void run() {
		if (kontrolkaTekstowa != null) {
			kontrolkaTekstowa.append(teskt);
			kontrolkaTekstowa.setCaretPosition(kontrolkaTekstowa.getDocument()
					.getLength());
			kontrolkaTekstowa.repaint();
		} else {
			System.out.print(teskt);
		}
		// }
		// });
	}

	public void wypiszNaEtykiecie(final String tekst) {
		// SwingUtilities.invokeLater(new Runnable() {
		// public void run() {
		if (kontrolkaEtykiety != null) {
			kontrolkaEtykiety.setText(tekst);
			kontrolkaEtykiety.repaint();
		}
		// }
		// });
	}

	public void wypiszZKoncemWiersza(Object obiekt) {
		this.wypiszZKoncemWiersza(obiekt.toString());
	}

	public void wypiszZKoncemWiersza(String teskt) {
		this.wypisz(teskt + "\n");
	}

	public void wypiszZnakKoncaWiersza() {
		this.wypisz("\n");
	}

	public void uaktualnijPostep(final int postep) {
		// SwingUtilities.invokeLater(new Runnable() {
		// public void run() {
		kontrolkaPostepu.setValue(postep);
		kontrolkaPostepu.setString((kontrolkaPostepu.getValue()
				/ kontrolkaPostepu.getMaximum() * 100)
				+ "%");
		kontrolkaPostepu.repaint();
		// }
		// });
	}

}
